/*
 * 参数：
 *  obj：要执行动画的对象
 * attr：要执行动画的样式 比如：left top width height
 * target：执行动画的目标位置
 * speed：移动的速度（正数向右移动，负数向左移动）
 * callback：回调函数，这个函数将会在动画执行结束时执行
 * 
 */
function move(obj , attr , target , speed , callback){
	//关闭上一个定时器
	clearInterval(obj.timer);
	//获取当前位置
	var current = parseInt(getStyle(obj , attr));
	//判断speed正负
	if(current > target){
		speed = -speed;
	}
	
	timer = setInterval(function(){
		//获取元素原来的位置
		var oldValue = parseInt(getStyle(obj , attr));
		
		//改变元素现在的位置
		var newValue = oldValue + speed;
		
		//判断元素位置
		if((speed < 0 && newValue < target) || (speed > 0 && newValue >target){
			newValue = target;
		}
			//给元素赋值
			obj.style[attr]  = newValue +"px";
			
			//当元素移动到0时，元素停止移动
			if(newValue === target){
				//关闭定时器
				clearInterval(timer.value);
				//调用回调函数
				callback && callback();
			}
			
	},3000);
}


//获取元素的信息
function getStyle(obj ,name){
	if(window.getComputedStyle){
		//大部分浏览器兼容的方式
		return getComputedStyle(obj ,null)[name];
	}else{
		//IE兼容的方式
		return obj.currentStyle[name];
	}
}
